// var a ="我是大大";
// console.log(a);

// let [b,c]=[1,2];

// console.log(c)
// console.log(b)


// let [a,b]=["SX","ZX"]
// console.log(a)
// console.log(b)


// let [a,b]=["SX",undefined]
// console.log(a)
// console.log(b) 


// let [a,b]=["SX",null]
// console.log(a)
// console.log(b)

// let [a,b="Z"]=["SX",null]
// console.log(a)
// console.log(b)

// let {bo,co}={co:"me",bo:"to"}

// console.log(bo)
// console.log(co)


// let fo ;
// ({fo}={fo:"me"})
// console.log(fo)



// function taiji(...arg){

//     console.log(arg)

// }
// taiji(1,2,3)

// function taiji(...arg){
//     console.log(arg)
// }
// taiji("w","b","d")

// function taiji(first,...arg){
//     console.log(arg)
// }
// taiji(1,2,3,4,5,6,7)

//字符串模板

    // let sx="孙希"

    // let li=`<b>${sx}太极</b>`
    
    //  document.write(li)





// let bos="今天是个好日子"

// console.log(bos.includes("日"))
// console.log(bos.indexOf("日"))
// console.log(bos.startsWith("日"))
// console.log(bos.endsWith("子"))

//isFinite判断一个数是不是正无穷或者负无穷大或者NaN
// console.log(isFinite("NaN"))
// console.log(isFinite("8/2"))

// console.log(isNaN("123"))
// console.log(isNaN("A123"))
// console.log(isNaN("123a"))

//转成整数
// console.log(parseInt("a122"))
// console.log(parseInt("122.2"))
// console.log(parseInt("122a"))//从左到右判断是不是数字
// console.log(parseInt("1a22"))//从左到右判断是不是数字,如果中间有字符的话就不会判断了


// console.log(Number.isNaN(1/3))
// console.log(typeof (1/3))

//parseInt(string, radix)string	必需。要被解析的字符串。
// radix	
// 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

// 如果省略该参数或其值为 0，则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头，将以 16 为基数。

// 如果该参数小于 2 或者大于 36，则 parseInt() 将返回 NaN。
// //判断是否为整数Nunmber.isInteger()
// console.log(Number.isInteger(12.5))//两个方法与传统的 isFinite() 和 isNaN() 方法区别在于，传统方法先调用 Number() 将非数值的值转为数值，再判断。这两个方法只对数值有效，非数值一律返回 false。
// console.log(Number.isInteger(aa))//不能转
// console.log(Number.parseInt(a,1))//不能转
// console.log(Number.parseInt(6,d))//不能转


//整数的取值范围
// let lia=Math.pow(2,53)-1
// console.log(lia)
// let lia1=Math.pow(-2,53)-1
// console.log(lia1)

//数组.find()返回查找到的一第一个数
// let arr=[1,5,2,4,7]
// let v=arr.find((value,index,arr) => value >5)
// console.log(v)

// //数组.findIndex()返回查找到的的一个数
// let arr1=[4,6,8,1,6,8]
// let v1=arr1.findIndex((value) => value>6)
// console.log(v1)

// let arr1=[4,6,8,1,6,8]
// console.log(arr1.length)


//函数

// function add(a,b=1){

//     if(a===0){
 
//         throw new Error("错误")
//     }
//     return a+b;

// }
// console.log(add(1));

// //es6箭头函数
// var v=(a,b=2) => a+b;
// console.log(v(12))

// let v1=(a,b=5) =>{
//     console.log("太极")
//     return a+b;
// }
// console.log(v1(2))

//数组遍历 forEach
// let arr=["she","is","god"]
// arr.forEach((val,index) => console.log(index,val))
// //数组遍历 filter
// arr.filter(x => console.log(x))
// arr.filter((value,index)=>console.log(index,value))
// //数组遍历 some
// arr.some(x => console.log(x))
// arr.some((value,index)=>console.log(index,value))
// //数组遍历 map 替换
// console.log(arr.map(x=>"me"))
// //转成字符串
// console.log(arr.toString())

// let la= ()=>({"name":"sx"})
// console.log(la())

// let eg =(a)=>{if(a==1)return 8}
// console.log(eg(1))



//重复
// console.log('x'.repeat(3))//xxx
// console.log('hello'.repeat(2))/hellohellohello
// console.log('na'.repeat(0))//不打印

// console.log('x'.padStart(3,'ab'))
// let bb="what are you donging"
// console.log(bb.padStart(22,'me'))//前一个参数是加入me后一共多少位字符
// console.log(bb.padEnd(22,'me'))
// console.log(bb.length)

// let la='ajvsfvjpofposf'
//替换，只替换发现的第一个
// console.log(la.replace('aj', '_'))

// let a={a:"a"}
// let b={c:"b"}
// let c={c:"c"}

//新类型 Symbol

// let ne=Symbol();
// console.log(typeof(ne))

//symbol对象元素的保护作用

 //let by={name:"张珊",sex:"女",age:"18"}
// for(let item in by){
//     console.log(by[item])
// }

// let by={name:"张珊",sex:"女"}
// let age=Symbol()
// by[age]=18//不显示
// for(let item in by){
//     console.log(by[item])
// }

// let li=Symbol();
// let obj={
//     [li]:"一席话"
// }

//声明Set/数组
// let obj = new Set([1,5,98,98]);
// //set中是否包含该值
// console.log(obj.has(1))
// let obj1= new Set();
// [1,1,5,52].forEach((value)=>obj1.add(value))
// console.log(obj1)
// let ui=new Set()
// let one={key:"li"}
// let one2={key:"li"}
// ui.add(one)
// ui.add(one2)
// console.log(ui)

// //add添加
// obj1.add(57)
// console.log(obj1)

// //delete删除
// obj1.delete(5)
// console.log(obj1)

// let obj2=new Set(("me","me","he"))
// console.log(obj2)

// let newObj=new WeakSet();
// let one={key:"li"}
// let one2={key:"li"}
// let one1=one;//会被判定为重复项，采用的同一个地址
// newObj.add(one)
// newObj.add(one2)
// console.log(newObj)


// //声明map
// let myMap=new Map()
// let st="what are you doing"

// //set添加
// myMap.set("key",st)
// console.log(myMap)
// //has查询是否存在
// myMap.has("key")
// //get查询值
// myMap.get("key")
// //delete删除
// myMap.delete("key")//true
// console.log(myMap)

//Map 也可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组。
// let oneMap=new Map([["me","name"],["o","twe"]])
// console.log(oneMap,oneMap.get("me"))

//map转为数组
// let twe=new Map()
// twe.set("key","you")
// twe.set("key2","has")
// let charge=[...twe]
// console.log(charge)
// twe.set(['a'],555)
// twe.set(['a'])
// console.log(twe.get(['a']))//undefined

//proxy 用Proxy进行预处理
// let element={
//     username:"sx",
//     passward:"xx",
//     age:5
// }

// let goud={
//  get : function(target,filename){
//      if(filename==='fullname'){
//         return `${target.username}&${target.passward}`
//      }

//      return filename in target ? target[filename] :"no"

//  }

// }
// //相当于代理类 element代理目标 goud代理函数
// let p =new Proxy(element,goud);
// console.group('proxy')
// console.log(p.username)
// console.log(p.passward)
// console.log(p.fullname)
// console.log(p.name)
//console.groupEnd()


//set设置值相当于对目标值key值改变时的规定
// let setdemo={

//     set : function(obj,tarage,value) {
//        if(tarage==='age'){
//            if(!Number.isInteger(value)){

//             throw new TypeError('age is not interage');

//            }
//            if(value<0){

//             throw new TypeError('this is insane');
//            }

//        }
//    }
// };

// let pr = new Proxy(element,setdemo)
// //不符合规定的值
// pr.age=-5


// //proxy整合
// let pro =new Proxy({

//     add:function (value) {
//         return value+10;
//     },
//     name:"i am sx"

// },{

//     get:function(target,key){
//         console.log("i'm get");
//         return target[key];
//     },
//     set:function(target,key,value){

//        console.log("i'm set")
//         return  target[key]=value+66;

//     }
// });

// pro.name="张三";

// console.log(pro.name)

let ar={name:"me",age:"55"}
//给对象添加值
ar.sex="男"

console.log(ar)
